草庐IT

Java final 与 C++ const

全部标签

java - 等价于 Java 中的 const(C++)

我想知道在Java中是否有与c++的const等价的东西。我理解final关键字,但不幸的是我不能用它来声明函数返回值final。相反,它始终确保函数不能被覆盖,对吗?基本上,我想确保给定的返回类不能被修改并且是只读的。这在Java中可能吗? 最佳答案 Basically,Iwanttomakesureagivenreturnedclasscannotbemodifiedandisreadonly.IsthatpossibleinJava?不是直接的,但一种解决方法是immutableobject.例子-publicfinalFoo

java - 等价于 Java 中的 const(C++)

我想知道在Java中是否有与c++的const等价的东西。我理解final关键字,但不幸的是我不能用它来声明函数返回值final。相反,它始终确保函数不能被覆盖,对吗?基本上,我想确保给定的返回类不能被修改并且是只读的。这在Java中可能吗? 最佳答案 Basically,Iwanttomakesureagivenreturnedclasscannotbemodifiedandisreadonly.IsthatpossibleinJava?不是直接的,但一种解决方法是immutableobject.例子-publicfinalFoo

Flutter 优化:布局时尽量用 const

###一、说明看到很多Flutter构建UI时会比较多用到const,为什么不直接创建实例,而要在前端加一个const呢?```child:constText('加const');VSchild:Text('不加const');```###二、尽量用const的理由当我们调用setState()后,Flutter会调用build方法,并且rebuild其中的每一个组件,避免全部重新构建的方法就是用const。如果一个组件更新频繁(比如动画),用const后可以减少垃圾回收。##三、示例```class_MyWidgetStateextendsState{Stringtitle="Title";

c# - 为什么 C# 不允许 const 和 static 在同一行?

为什么C#不允许const和static在同一行?在Java中,您必须将字段声明为“静态”和“最终”以充当常量。为什么C#不允许您将const声明为final?我进一步区分,在Java中,每个接口(interface)都是公共(public)的和抽象的,无论是否显式声明。const本质上不是静态的吗?为什么C#对此犹豫不决? 最佳答案 const和static确实意味着不同的东西,不同的存储机制,不同的初始化。static是读/写的,因此必须为存储分配内存并且必须在运行时初始化。static可以用文字值或表达式初始化。相比之下,co

c# - 为什么 C# 不允许 const 和 static 在同一行?

为什么C#不允许const和static在同一行?在Java中,您必须将字段声明为“静态”和“最终”以充当常量。为什么C#不允许您将const声明为final?我进一步区分,在Java中,每个接口(interface)都是公共(public)的和抽象的,无论是否显式声明。const本质上不是静态的吗?为什么C#对此犹豫不决? 最佳答案 const和static确实意味着不同的东西,不同的存储机制,不同的初始化。static是读/写的,因此必须为存储分配内存并且必须在运行时初始化。static可以用文字值或表达式初始化。相比之下,co

c++ - 允许将 "const char*"分配给 std::string,但分配给 std::wstring 不会编译。为什么?

我假设std::wstring和std::string都提供或多或少相同的接口(interface)。所以我尝试为我们的应用程序启用unicode功能#ifdefAPP_USE_UNICODEtypedefstd::wstringAppStringType;#elsetypedefstd::stringAppStringType;#endif但是,当使用-DAPP_USE_UNICODE时,这会给我带来很多编译错误。事实证明,当将constchar[]分配给std::wstring时,编译器会阻塞。编辑:通过删除文字“hello”的使用改进了示例。#includevoidmyfunc(

ios - 将 'float [2]' 类型的可保留参数传递给期望 'const CGFloat *'(又名 'const double *')类型的 CF 函数的不兼容指针类型

我得到这个错误,我在arm64下编译出现这个错误:CGContextSetLineDash(line,0,lengths,1);//画虚线我该如何解决?-(id)initDashLineWithFrame:(CGRect)frame{UIImageView*imageView1=[[UIImageViewalloc]initWithFrame:frame];UIGraphicsBeginImageContext(imageView1.frame.size);//开始画线[imageView1.imagedrawInRect:CGRectMake(0,0,imageView1.frame

c++ - const 成员函数优先于返回值类型匹配

在Y::test1()中,非constX::operatorvoid*()优先于看似更好的匹配,X::operatorbool()const-为什么?标准中对这种现象的描述在哪里?#includestructX{operatorvoid*(){std::cout输出:test1()operatorvoid*()test2()operatorbool() 最佳答案 首先:将return语句中的表达式转换为函数的返回类型时,规则与初始化相同(参见[conv]/2.4和[conv]/3).所以我们可以使用这个示例来检查代码的行为(使用与您

c++ - 从 const unordered_map 读取对象

为什么不允许我从常量unordered_map中读取对象?constunordered_mapz;intval=z[5];//compileerrorclang下的错误如下:error:noviableoverloadedoperator[]fortype'constunordered_map'intval=z[5];考虑到使用constvector的等效代码可以正常工作,我有点困惑为什么会出现这种行为。 最佳答案 表达式z[5]调用映射的非常量成员函数。这是因为map的operator[]会在没有找到键的情况下插入一个新元素,所以

javascript - 如何在 try catch block 中使用 const

这个问题在这里已经有了答案:Javascriptsetconstvariableinsideofatryblock(7个回答)关闭5年前。const是一个block级变量,所以当我尝试可疑代码时try{constfoo=bar[global.name].foofoo[global.name2];}catch(err){console.log(error(err.message));}const隐藏在{}但是constfoo;try{foo=bar[global.name].foofoo[global.name2];}catch(err){console.log(error(err.me